﻿#ifndef TRACK_DATA_H
#define TRACK_DATA_H

/*****************************************************************************************
  @Copyright  2020-2021
  @Date       2021-05-23
  @Author     qiaowei
  @Contact    weiweiqiao@126.com
  @Version    1.0
  @Brief      Flight track
  @Other      None
  @History
      @Date   20210420
      @Author qiaowei
      @Brief  添加show_track_变量，标志位，是否显示航迹数据
              添加data_变量，存储航迹数据

      @Date   20210421
      @Author qiaowei
      @Brief  添加set_show_track函数，设置是否显示航迹数据
              添加get_show_track函数，获取是否显示航迹数据
              Add setup_data() function, store string in QMap spliting for key/value
  @Functions  None
******************************************************************************************/

#include <QObject>

class Track_data : public QObject
{
    Q_OBJECT

public:
    explicit Track_data(QObject *parent = nullptr);
    ~Track_data();

    /***************************************************************************
     @Date     2021-05-23
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    拷贝构造函数
    ***************************************************************************/
    Track_data(const Track_data& right_value);

    /***************************************************************************
     @Date     2021-05-23
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    赋值操作符
    ***************************************************************************/
    Track_data& operator =(const Track_data& right_value);

    void set_row(int row);

    int get_row() const;

    /***************************************************************************
     @Date     2021-04-21
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    Set show_track_'s value
    ***************************************************************************/
    void set_show_track(bool show_track);

    /***************************************************************************
     @Date     2021-04-21
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    Get show_track_ to show track or not
     @Return   true hide track, false show track in View
    ***************************************************************************/
    bool get_show_track() const;

    /***************************************************************************
     @Date     2021-04-21
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    将传入的数据（QString格式）处理，以key/value的格式保存到QMap中
     @param    content 读取的雷达数据（文本格式）
    ***************************************************************************/
    void setup_data(QString content);

    QMap<QString, QVariant>* get_data();

private:
    int row_;

    /***************************************************************************
     @Date     2021-04-20
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    标志位，标志是否将航迹数据显示给用户, true hide track;false show track
               to View
    ***************************************************************************/
    bool show_track_;

    /***************************************************************************
     @Date     2021-04-20
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    存储航迹数据，QString保存数据名，QVariant保存具体数据，因数据类型不同，所
               以使用QVariant类型
    ***************************************************************************/
    QMap<QString, QVariant>* data_;
};

#endif // TRACK_DATA_H
